package cn.ld.module.ai.service.knowledge;

import cn.ld.framework.common.pojo.PageResult;
import cn.ld.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentPageInVO;
import cn.ld.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentSearchInVO;
import cn.ld.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateInVO;
import cn.ld.module.ai.controller.admin.knowledge.vo.segment.AiKnowledgeSegmentUpdateStatusInVO;
import cn.ld.module.ai.dal.entity.knowledge.AiKnowledgeSegmentEntity;

import java.util.List;

/**
 * AI 知识库段落 Service 接口
 *
 * @author xiaoxin
 */
public interface AiKnowledgeSegmentService {

    /**
     * 获取段落分页
     *
     * @param pageInVO 分页查询
     * @return 文档分页
     */
    PageResult<AiKnowledgeSegmentEntity> getKnowledgeSegmentPage(AiKnowledgeSegmentPageInVO pageInVO);

    /**
     * 更新段落的内容
     *
     * @param inVO 更新内容
     */
    void updateKnowledgeSegment(AiKnowledgeSegmentUpdateInVO inVO);

    /**
     * 更新段落的状态
     *
     * @param inVO 更新内容
     */
    void updateKnowledgeSegmentStatus(AiKnowledgeSegmentUpdateStatusInVO inVO);

    /**
     * 召回段落
     *
     * @param inVO 召回请求信息
     * @return 召回的段落
     */
    List<AiKnowledgeSegmentEntity> similaritySearch(AiKnowledgeSegmentSearchInVO inVO);

}
